package br.com.sgdee.mb;

import java.util.ArrayList;
import java.util.List;

import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.persistence.PersistenceException;

import org.apache.log4j.Logger;

import br.com.sgdee.bo.remote.EntidadeBORemote;
import br.com.sgdee.dto.EntidadeDTO;
import br.com.sgdee.dto.PessoaDTO;
import br.com.sgdee.entidades.acesso.Entidade;
import br.com.sgdee.entidades.acesso.Pessoa;
import br.com.sgdee.mb.generic.GenericoBean;

@ManagedBean
@ViewScoped
public class ManterEntidade extends GenericoBean {

	/**
	 * 
	 */
	private static final long serialVersionUID = 4018825859453480067L;

	private Logger LOG = Logger.getLogger(ManterEntidade.class);
	
	@EJB
	private EntidadeBORemote entidadeBO;

	private EntidadeDTO filtro;

	private Entidade entidade;

	private List<Entidade> listaEntidade;

	public void recuperarListaEntidades() {
		carregarListaEntidades();
	}

	private void carregarListaEntidades() {
		try {
			getListaEntidade().clear();

			setListaEntidade(this.entidadeBO.recuperarTodosFiltro(getFiltro()));
			
		} catch (PersistenceException e) {
			LOG.error("Erro ao pesquisar Entidade.", e);
		}
	}

	public EntidadeDTO getFiltro() {
		if (filtro == null) {
			filtro = new EntidadeDTO();
		}
		return filtro;
	}

	public void setFiltro(EntidadeDTO filtro) {
		this.filtro = filtro;
	}

	public Entidade getEntidade() {
		if (entidade == null) {
			entidade = new Entidade();
		}
		return entidade;
	}

	public void setEntidade(Entidade entidade) {
		this.entidade = entidade;
	}

	public List<Entidade> getListaEntidade() {
		if (listaEntidade == null) {
			listaEntidade = new ArrayList<Entidade>();
		}
		return listaEntidade;
	}

	public void setListaEntidade(List<Entidade> listaEntidade) {
		this.listaEntidade = listaEntidade;
	}
}
